Technical Field
This patent document generally relates to distributed data processing systems and to the delivery of content to users over computer networks.
Brief Description of the Related Art
The speed at which web pages load is of significant importance to website owners. If a page takes too long to load, end-users will have a negative experience, and may abandon the site. For online businesses, this can translate to poor customer service, lost traffic, and lost revenue.
Speed is important not only for web pages in a browser but also for other kinds of online content too, be it downloadable content (e.g., software), streaming multimedia, API data, or otherwise. With the continuing move to so-called ‘cloud’ services—including software-as-a-service and platform-as-a-service offerings—the importance of quick and reliable content delivery over the Internet only increases. Moreover, users' sensitivity to delay in loading web pages is increasing.
A wide variety of content delivery technologies have been developed to improve website speed and reliability, including distributed computer systems known as content delivery networks (CDNs) that are typically operated and managed by a service provider on behalf of participating content providers, who designate content to be delivered to end-users over the CDN infrastructure. A CDN typically comprises a coordinated set of content servers distributed around the Internet.
In such distributed systems, there is preferably a way to intelligently select the ‘best’ content server to use for delivering content to a particular end-user client. The ‘best’ content server is a qualitative notion that may take into account such metrics as the network distance and latency between the client and candidate content servers, server load, and whether a given content server is likely to have the requested content, among other things. The selection of a server can be achieved, for example, using an intelligent DNS system that returns an IP address for the selected content server in response to a request to resolve a given hostname, taking into account such factors as recited above. In this way, the end-user client device receiving this IP address is directed to send a content request to the selected server.
While these systems work well, delays in the path between a given content server and a client device vary; this can affect content delivery speed. In some cases, the choice of content server nearly always will be the same, because the “best” content server is so much closer to a client than all others. But in heavily deployed content delivery networks, there may be multiple candidate servers sufficiently near the client, and the “best” content server may be a function of variable “last-mile” conditions.
The teachings hereof provide, without limitation, systems, methods, and apparatus aimed at improving the delivery of content over computer networks by recognizing and exploiting variability in network conditions between a client device and content servers (sometimes referred to as the “last mile” of content delivery). The teachings hereof provide, without limitation, systems, methods and apparatus that enable the server side to address last mile issues by initiating certain procedures and techniques, preferably leaving the client device implementation unmodified. The foregoing are merely some pertinent aspects of the teachings of this disclosure, and are not intended to be limiting or to represent all of the features, or the necessary features, of systems, methods, and apparatus described herein. The teachings hereof provide a variety of benefits and improvements that will become apparent in view of this disclosure.